package marionito.usecases;

import java.util.List;

import javax.ejb.Remote;

import marionito.domaine.Case;
import marionito.domaine.Jeton;
import marionito.domaine.Joueur;
import marionito.domaine.JoueurPartie;
import marionito.domaine.Partie;

@Remote
public interface GestionParties {

	Partie creerPartie(String nomPartie);

	Partie rejoindrePartie(String nomPartie, String joueur);

	int lancerDe(String nomPartie);

	List<String> listerJoueurs(String nomPartie);

	Partie chargerTout(Partie partie);

	List<Partie> listerParties();

	List<Partie> listerPartiesPasCommencee();

	List<Partie> listerPartiesCommencee();

	List<Partie> listerPartiesTerminee();

	boolean contientJoueur(String nomPartie, Joueur joueur);

	List<Jeton> commencerPartie(String nomPartie);

	void creerJetons();

	Partie chargerJoueurs(Partie partie);

	void annulerPartie(String nomPartie);

	List<Case> listeCases(Joueur joueur, String nomPartie);

	Jeton jetonSuivant(String nomPartie);

	Case ajouterJeton(Joueur joueur, String nomPartie, Jeton jeton,
			String numCasePlace);

	Partie recherchePartie(String nomPartie);

	Case remplacerJeton(Joueur joueur, String nomPartie,
			String valeurJetonPlace, String numCasePlace);

	List<Joueur> listerVainqueurs(String nomPartie);

	List<JoueurPartie> listeJoueursScores(String nomPartie);

}
